'\" e
'\"! eqn | mmdoc
'\"macro stdmacro
.ds Vn Version 1.2
.ds Dt 24 September 1999
.ds Re Release 1.2.1
.ds Dp Jan 14 18:30
.ds Dm 01 viewport.
.ds Xs 35742 4 viewport.gl
.TH GLVIEWPORT 3G
.SH NAME
.B "glViewport
\- set the viewport

.SH C SPECIFICATION
void \f3glViewport\fP(
GLint \fIx\fP,
.nf
.ta \w'\f3void \fPglViewport( 'u
	GLint \fIy\fP,
	GLsizei \fIwidth\fP,
	GLsizei \fIheight\fP )
.fi

.EQ
delim $$
.EN
.SH PARAMETERS
.TP \w'\f2x\fP\ \f2y\fP\ \ 'u 
\f2x\fP, \f2y\fP
Specify the lower left corner of the viewport rectangle,
in pixels. The initial value is (0,0).
.TP
\f2width\fP, \f2height\fP
Specify the width and height
of the viewport.
When a GL context is first attached to a window,
\f2width\fP and \f2height\fP are set to the dimensions of that window.
.SH DESCRIPTION
\%\f3glViewport\fP specifies the affine transformation of $x$ and $y$ from
normalized device coordinates to window coordinates.
Let ($x sub nd$, $y sub nd$) be normalized device coordinates.
Then the window coordinates ($x sub w$, $y sub w$) are computed as follows:
.sp
.ce
.EQ
x sub w ~=~ ( x sub nd ~+~ 1 ) left ( "width" over 2 right ) ~+~ "x"
.EN
.sp
.ce
.EQ
y sub w ~=~ ( y sub nd ~+~ 1 ) left ( "height" over 2 right ) ~+~ "y"
.EN
.RE
.P
Viewport width and height are silently clamped
to a range that depends on the implementation.
To query this range, call \%\f3glGet\fP with argument
\%\f3GL_MAX_VIEWPORT_DIMS\fP.
.SH ERRORS
\%\f3GL_INVALID_VALUE\fP is generated if either \f2width\fP or \f2height\fP is negative.
.P
\%\f3GL_INVALID_OPERATION\fP is generated if \%\f3glViewport\fP
is executed between the execution of \%\f3glBegin\fP
and the corresponding execution of \%\f3glEnd\fP.
.bp
.SH ASSOCIATED GETS
\%\f3glGet\fP with argument \%\f3GL_VIEWPORT\fP
.br
\%\f3glGet\fP with argument \%\f3GL_MAX_VIEWPORT_DIMS\fP
.SH SEE ALSO
\%\f3glDepthRange(3G)\fP
